package model

// UsersInviteCardDetail 卡片
type UsersInviteCardDetail struct {
	Id                 string `json:"id"`                 // ID
	Status             bool   `json:"status"`             // 状态
	CardCode           string `json:"cardCode"`           // 卡号
	ParentUid          string `json:"parentUid"`          // 卡片绑定人员
	CreateTime         int64  `json:"createTime"`         // 创建时间
	UpdateTime         int64  `json:"updateTime"`         // 更新时间
	Uid                int64  `json:"uid"`                // 使用者
	Message            string `json:"message"`            // 备注
	UqKey              int64  `json:"uqKey"`              // 卡片序列号
	Year               int64  `json:"year"`               // 年限
	BatchId            string `json:"batchId"`            // 批次号
	AccessKey          string `json:"accessKey"`          // 卡号
	Enabled            bool   `json:"enabled"`            // 是否开启
	UsageCount         int32  `json:"usageCount"`         // 使用次数
	Paid               bool   `json:"paid"`               // 是否付费卡片
	ExpireTime         int64  `json:"expireTime"`         // 过期时间
	ActivationDeadline int64  `json:"activationDeadline"` // 激活截止时间
	Cover              string `json:"cover"`              // 卡片封面
	SpecialUsageCount  int32  `json:"specialUsageCount"`  // 专属使用次数
	Price              int64  `json:"price"`              // 价格
	ValidDays          int32  `json:"validDays"`          // 有效天数
}

type T struct {
	Id                 string `json:"id"`
	Status             bool   `json:"status"`
	CardCode           string `json:"cardCode"`
	ParentUid          string `json:"parentUid"`
	CreateTime         int    `json:"createTime"`
	UpdateTime         int    `json:"updateTime"`
	Uid                int    `json:"uid"`
	Message            string `json:"message"`
	UqKey              int    `json:"uqKey"`
	Year               int    `json:"year"`
	BatchId            string `json:"batchId"`
	AccessKey          string `json:"accessKey"`
	Enabled            bool   `json:"enabled"`
	UsageCount         int    `json:"usageCount"`
	Paid               bool   `json:"paid"`
	ExpireTime         int    `json:"expireTime"`
	ActivationDeadline int    `json:"activationDeadline"`
	Cover              string `json:"cover"`
	SpecialUsageCount  int    `json:"specialUsageCount"`
	Price              int    `json:"price"`
	ValidDays          int    `json:"validDays"`
}

// UsersInviteCardMultiEditReq 批量开启卡片
type UsersInviteCardMultiEditReq struct {
	StartUqKey         int64  `json:"startUqKey,optional"` // 开始卡片序列号
	EndUqKey           int64  `json:"endUqKey,optional"`   // 结束卡片序列号
	BatchId            string `json:"batchId"`             // 批次ID
	Enable             bool   `json:"enable,optional"`     // 是否启用 true:启用 false:禁用
	Paid               bool   `json:"paid,optional"`       // 是否(付费/至尊)卡片
	UsageCount         int32  `json:"usageCount"`          // 普通权益使用次数
	SpecialUsageCount  int32  `json:"specialUsageCount"`   // (付费/至尊)权益 使用次数
	Price              int64  `json:"price,optional"`      // 卡片价格
	Cover              string `json:"cover,optional"`      // 卡片封面
	ActivationDeadline int64  `json:"activationDeadline"`  // 激活截止时间; 在此时间前可激活
	ValidDays          int32  `json:"validDays"`           // 有效天数; 卡片激活后自动计算expireTime过期时间
	ParentUid          string `json:"parentUid"`           // 卡片绑定人员
}

// CardListSearchReq 卡片
type CardListSearchReq struct {
	Page      int    `json:"page"`
	PageSize  int    `json:"pageSize"`
	BatchId   string `json:"batchId,omitempty"`
	AccessKey string `json:"accessKey,omitempty"`
}

// UsersInviteCardList 卡片
type UsersInviteCardList struct {
	Total int64                   `json:"total"`
	List  []UsersInviteCardDetail `json:"list"`
}

// BoxesStageEnableReq 盒子开启
type BoxesStageEnableReq struct {
	FileId     int              `json:"fileId"`
	Enable     bool             `json:"enable"`
	Paid       bool             `json:"paid"`
	ParentId   string           `json:"agentId"`
	BoxesStage []BoxInfoReqBody `json:"boxesStage"`
}

// BoxInfoReqBody 盒子信息
type BoxInfoReqBody struct {
	BoxIndex int   `json:"boxIndex"`
	List     []int `json:"list"`
}

// BoxesStageEnableRes 盒子开启响应
type BoxesStageEnableRes struct {
	Num int32  `json:"num"`
	Msg string `json:"msg"`
}

// NumResp 成功变更记录数量响应体
type NumResp struct {
	Num int64 `json:"num"`
}
